% 术语 空间域 ，也就是图像平面本身
% 在空间域内处理图像的方法就是直接对图像的像素进行处理
% 两种空间域处理方法 g(x, y) = T[f(x, y)]
% 1、亮度/灰度级变换
% 2、空间滤波/邻域处理/空间卷积

% imadjust function
% g = imadjust(f, [low_in high_in], [low_out high_out], gamma)
% 获得 负片图像
g1 = imadjust(f, [0 1], [1 0]);
% 获得负片图像 等价于 imcomplement
g = imcomplement(f);

% 灰度级扩展处理突出感兴趣的亮度带
g2 = imadjust(f, [0.5 0.75], [0 1]);

% 压缩灰度级的低端并扩展灰度级的高端
g3 = imadjust(f, [], [], 2);

% 对数变换
% g = c * log(1 + double(f))
% 主要应用于压缩动态范围
gs = im2uint8(mat2gray(g));

% 对比度拉伸变换
% 输入值低于m的灰度级压缩为输出图像中较暗灰度级的较窄范围
% 输入值高于m的灰度级压缩为输出图像中较亮灰度级的较窄范围
% 输出一幅具有高对比度的图像
g = 1./ (1 + (m ./ (double(f) + eps)).^E)
% 通过阈值函数的限制，输出一幅二值图像
% 阈值函数是进行图像分割的一种有效工具

% 使用对数变换减少动态范围
% 取值范围 0-1.5X10^6 傅里叶频谱，显示在线性比例尺的8bit系统上
g = im2uint8(mat2gray(log(1 + double(f))));
imshow(g)

% 处理可变数量的输入和输出
% nargin function 检测输入到 M 函数的参数数量
% nargout function 检测 M 函数输出的参数数量
% neargchk function 检测传递的参数数量是否正确
% error function 用于终止频繁使用 nargchk 程序的执行

% 基于从图像亮度直方图中提取的信息的亮度变换函数，
% 在诸如增强、压缩、分割、描述等方面的图像处理中扮演着基础性的角色。
% 图像直方图
% 绘制图形直方图各种方法：imhist；bar；stem；plot
% 直方图均衡化，处理结果就是一幅扩展了动态范围的图形，具有较高的对比度
% 生成具有指定直方图的图像的方法称之为直方图匹配或者直方图规定化

% 空间滤波
% 领域处理包括：
% 1、定义中心点(x, y);
% 2、仅对预先定义的以(x, y)为中心的领域内的像素进行运算；
% 3、令运算结果为该点处处理的响应；
% 4、对图像中的每一点重复此步骤。
% 移动中心点会产生新的领域，而每个领域对应于输入图像上的一个像素

% 用来区别此过程的两种主要术语为领域处理和空间滤波，其中第二个术语应用普遍
% 若对领域中像素的计算位线性运算时，则此运算称之为线性空间滤波，也称空间卷积；
% 否则，称次运算为非线性空间滤波。


